Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Model-driven engineering</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Model-driven_engineering"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Model-driven_engineering rootpage-Model-driven_engineering skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Model-driven engineering</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */


.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><table class="sidebar sidebar-collapse nomobile"><tbody><tr><td class="sidebar-pretitle">Part of a series on</td></tr><tr><th class="sidebar-title-with-pretitle"><a href="Software_development" title="Software development">Software development</a></th></tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Core activities</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Data_modeling" title="Data modeling">Data modeling</a></li>
<li><a href="Software_development_process" title="Software development process">Processes</a></li>
<li><a href="Requirements_analysis" title="Requirements analysis">Requirements</a></li>
<li><a href="Software_design" title="Software design">Design</a></li>
<li><a href="Software_construction" title="Software construction">Construction</a></li>
<li><a href="Software_engineering" title="Software engineering">Engineering</a></li>
<li><a href="Software_testing" title="Software testing">Testing</a></li>
<li><a href="Debugging" title="Debugging">Debugging</a></li>
<li><a href="Software_deployment" title="Software deployment">Deployment</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Maintenance</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Paradigms and models</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Agile_software_development" title="Agile software development">Agile</a></li>
<li><a href="Cleanroom_software_engineering" title="Cleanroom software engineering">Cleanroom</a></li>
<li><a href="Incremental_build_model" title="Incremental build model">Incremental</a></li>
<li><a href="Software_prototyping" title="Software prototyping">Prototyping</a></li>
<li><a href="Spiral_model" title="Spiral model">Spiral</a></li>
<li><a href="V-model_(software_development)" title="V-model (software development)">V model</a></li>
<li><a href="Waterfall_model" title="Waterfall model">Waterfall</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="Software_development_methodology" class="mw-redirect" title="Software development methodology">Methodologies</a> and frameworks</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Adaptive_software_development" title="Adaptive software development">ASD</a></li>
<li><a href="Disciplined_agile_delivery" title="Disciplined agile delivery">DAD</a></li>
<li><a href="DevOps" title="DevOps">DevOps</a></li>
<li><a href="Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a></li>
<li><a href="Feature-driven_development" title="Feature-driven development">FDD</a></li>
<li><a href="Iterative_and_incremental_development" title="Iterative and incremental development">IID</a></li>
<li><a href="Kanban_(development)" title="Kanban (development)">Kanban</a></li>
<li><a href="Lean_software_development" title="Lean software development">Lean SD</a></li>
<li><a href="Scrum_(software_development)#Large-scale_Scrum" title="Scrum (software development)">LeSS</a></li>
<li><a href="Model-driven_development" class="mw-redirect" title="Model-driven development">MDD</a></li>
<li><a href="Microsoft_Solutions_Framework" title="Microsoft Solutions Framework">MSF</a></li>
<li><a href="Personal_software_process" title="Personal software process">PSP</a></li>
<li><a href="Rapid_application_development" title="Rapid application development">RAD</a></li>
<li><a href="Rational_unified_process" title="Rational unified process">RUP</a></li>
<li><a href="Scaled_agile_framework" title="Scaled agile framework">SAFe</a></li>
<li><a href="Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li>
<li><a href="SEMAT" title="SEMAT">SEMAT</a></li>
<li><a href="Test-driven_development" title="Test-driven development">TDD</a></li>
<li><a href="Team_software_process" title="Team software process">TSP</a></li>
<li><a href="Unified_process" title="Unified process">UP</a></li>
<li><a href="Extreme_programming" title="Extreme programming">XP</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Supporting disciplines</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Software_configuration_management" title="Software configuration management">Configuration management</a></li>
<li><a href="Deployment_management#Computer_science" title="Deployment management">Deployment management</a></li>
<li><a href="Software_documentation" title="Software documentation">Documentation</a></li>
<li><a href="Software_project_management" title="Software project management">Project management</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">Quality assurance</a></li>
<li><a href="User_experience" title="User experience">User experience</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Practices</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Acceptance_test-driven_development" title="Acceptance test-driven development">ATDD</a></li>
<li><a href="Behavior-driven_development" title="Behavior-driven development">BDD</a></li>
<li><a href="Extreme_programming_practices#Collective_code_ownership" title="Extreme programming practices">CCO</a></li>
<li><a href="Continuous_delivery" title="Continuous delivery">CD</a></li>
<li><a href="Continuous_integration" title="Continuous integration">CI</a></li>
<li><a href="Domain-driven_design" title="Domain-driven design">DDD</a></li>
<li><a href="Pair_programming" title="Pair programming">PP</a></li>
<li><a href="Specification_by_example" title="Specification by example">SBE</a></li>
<li><a href="Stand-up_meeting" title="Stand-up meeting">Stand-up</a></li>
<li><a href="Test-driven_development" title="Test-driven development">TDD</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="Programming_tool" title="Programming tool">Tools</a></div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Build_automation" title="Build automation">Build automation</a></li>
<li><a href="Compiler" title="Compiler">Compiler</a></li>
<li><a href="Debugger" title="Debugger">Debugger</a></li>
<li><a href="Graphical_user_interface_builder" title="Graphical user interface builder">GUI builder</a></li>
<li><a href="Integrated_development_environment" title="Integrated development environment">IDE</a></li>
<li><a href="Infrastructure_as_code" title="Infrastructure as code">Infrastructure as code</a></li>
<li><a href="Profiling_(computer_programming)" title="Profiling (computer programming)">Profiler</a></li>
<li><a href="Application-release_automation" title="Application-release automation">Release automation</a></li>
<li><a href="UML_tool" title="UML tool">UML Modeling</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Standards and bodies of knowledge</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li>
<li><a href="IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></li>
<li><a href="International_Requirements_Engineering_Board" title="International Requirements Engineering Board">IREB</a></li>
<li><a href="ISO_9001" class="mw-redirect" title="ISO 9001">ISO 9001</a></li>
<li><a href="ISO/IEC_JTC_1/SC_7" title="ISO/IEC JTC 1/SC 7">ISO/IEC standards</a></li>
<li><a href="ITIL" title="ITIL">ITIL</a></li>
<li><a href="Object_Management_Group" title="Object Management Group">OMG</a></li>
<li><a href="Project_Management_Body_of_Knowledge" title="Project Management Body of Knowledge">PMBOK</a></li>
<li><a href="Software_Engineering_Body_of_Knowledge" title="Software Engineering Body of Knowledge">SWEBOK</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Glossaries</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Glossary_of_artificial_intelligence" title="Glossary of artificial intelligence">Artificial intelligence</a></li>
<li><a href="Glossary_of_computer_science" title="Glossary of computer science">Computer science</a></li>
<li><a href="Glossary_of_electrical_and_electronics_engineering" title="Glossary of electrical and electronics engineering">Electrical and electronics engineering</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Outlines</div><div class="sidebar-list-content mw-collapsible-content hlist">
<ul><li><a href="Outline_of_software_development" title="Outline of software development">Outline of software development</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p><b>Model-driven engineering</b> (<b>MDE</b>) is a <a href="Software_development_methodology" class="mw-redirect" title="Software development methodology">software development methodology</a> that focuses on creating and exploiting <a href="Domain_model" title="Domain model">domain models</a>, which are <a href="Conceptual_model_(computer_science)" class="mw-redirect" title="Conceptual model (computer science)">conceptual models</a> of all the topics related to a specific problem. Hence, it highlights and aims at <a href="Representation_(mathematics)" title="Representation (mathematics)">abstract representations</a> of the <a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">knowledge</a> and activities that govern a particular <a href="Domain_(software_engineering)" title="Domain (software engineering)">application domain</a>, rather than the computing (i.e. algorithmic) concepts.
</p><p>MDE is a subfield of a <a href="Software_design" title="Software design">software design</a> approach referred as <a href="Round-trip_engineering" title="Round-trip engineering">round-trip engineering</a>. The scope of the MDE is much wider than that of the <a href="Model-driven_architecture" title="Model-driven architecture">Model-Driven Architecture</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>The MDE approach is meant to increase productivity by maximizing compatibility between systems (via reuse of standardized models), simplifying the process of design (via models of recurring <a href="Design_patterns" class="mw-redirect" title="Design patterns">design patterns</a> in the application domain), and promoting communication between individuals and teams working on the system (via a standardization of the terminology and the <a href="Best_practice" title="Best practice">best practices</a> used in the application domain). For instance, in model-driven development, technical artifacts such as source code, documentation, tests, and more are generated algorithmically from a domain model.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>A modeling paradigm for MDE is considered effective if its models make sense from the point of view of a user that is familiar with the domain, and if they can serve as a basis for implementing systems. The models are developed through extensive communication among product managers, designers, developers and users of the application domain. As the models approach completion, they enable the development of software and systems.
</p><p>Some of the better known MDE initiatives are:
</p>
<ul><li>The <a href="Object_Management_Group" title="Object Management Group">Object Management Group</a> (OMG) initiative <a href="Model-Driven_Architecture" class="mw-redirect" title="Model-Driven Architecture">Model-Driven Architecture</a> (MDA) which is leveraged by several of their standards such as <a href="Meta-Object_Facility" title="Meta-Object Facility">Meta-Object Facility</a>, <a href="XML_Metadata_Interchange" title="XML Metadata Interchange">XMI</a>, <a href="Common_Warehouse_Metamodel" class="mw-redirect" title="Common Warehouse Metamodel">CWM</a>, <a href="CORBA" class="mw-redirect" title="CORBA">CORBA</a>, <a href="Unified_Modeling_Language" title="Unified Modeling Language">Unified Modeling Language</a> (to be more precise, the OMG currently promotes the use of a subset of UML called <a href="Executable_UML#fUML_and_ALF" title="Executable UML">fUML</a> together with its action language, <a href="Executable_UML#fUML_and_ALF" title="Executable UML">ALF</a>, for model-driven architecture; a former approach relied on Executable UML and <a href="Object_Constraint_Language" title="Object Constraint Language">OCL</a>, instead), and <a href="QVT" title="QVT">QVT</a>.<sup id="cite_ref-omgtm_3-0" class="reference"><a href="#cite_note-omgtm-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></li>
<li>The <a href="Eclipse_(software)" title="Eclipse (software)">Eclipse</a> "eco-system" of programming and modelling tools represented in general terms by the (<a href="Eclipse_Modeling_Framework" title="Eclipse Modeling Framework">Eclipse Modeling Framework</a>). This framework allows the creation of tools implementing the MDA standards of the OMG; but, it is also possible to use it to implement other modeling-related tools.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>The first tools to support MDE were the Computer-Aided Software Engineering (<a href="Computer_Aided_Software_Engineering" class="mw-redirect" title="Computer Aided Software Engineering">CASE</a>) tools developed in the 1980s. Companies like Integrated Development Environments (IDE – StP), Higher Order Software (now Hamilton Technologies, Inc., HTI), Cadre Technologies, <a href="Charles_Bachman#Bachman_Information_Systems" title="Charles Bachman">Bachman Information Systems</a>, and <a href="Logic_Works" title="Logic Works">Logic Works</a> (BP-Win and ER-Win) were pioneers in the field.
</p><p>The US government got involved in the modeling definitions creating the <a href="IDEF" title="IDEF">IDEF</a> specifications. With several variations of the modeling definitions (see <a href="Booch_method" class="mw-redirect" title="Booch method">Booch</a>, <a href="Object-modeling_technique" title="Object-modeling technique">Rumbaugh</a>, <a href="Object-oriented_software_engineering" class="mw-redirect" title="Object-oriented software engineering">Jacobson</a>, Gane and Sarson, <a href="State_diagram#Harel_statechart" title="State diagram">Harel</a>, <a href="Shlaer%E2%80%93Mellor_method" title="Shlaer–Mellor method">Shlaer and Mellor</a>, and others) they were eventually joined creating the <a href="Unified_Modeling_Language" title="Unified Modeling Language">Unified Modeling Language</a> (UML). <a href="Rational_Rose" class="mw-redirect" title="Rational Rose">Rational Rose</a>, a product for UML implementation, was done by Rational Corporation (Booch) responding automation yield higher levels of abstraction in software development. This abstraction promotes simpler models with a greater focus on problem space. Combined with executable semantics this elevates the total level of automation possible. The <a href="Object_Management_Group" title="Object Management Group">Object Management Group</a> (OMG) has developed a set of standards called <a href="Model-driven_architecture" title="Model-driven architecture">Model-Driven Architecture</a> (MDA), building a foundation for this advanced architecture-focused approach.
</p>
<div class="mw-heading mw-heading2"><h2 id="Advantages">Advantages</h2></div>
<p>According to <a href="Douglas_C._Schmidt" title="Douglas C. Schmidt">Douglas C. Schmidt</a>, model-driven engineering technologies offer a promising approach to address the inability of third-generation languages to alleviate the complexity of platforms and express domain concepts effectively.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Tools">Tools</h2></div>
<p>Notable software tools for model-driven engineering include:
</p>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */


.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}


/* end https://en.wikipedia.org/ */
</style><div class="div-col" style="column-width: 27em;">
<ul><li><a href="Architecture_Analysis_%26_Design_Language" title="Architecture Analysis &amp; Design Language">AADL</a> from Carnegie-Mellon Software Engineering Institute</li>
<li><a href="Acceleo" title="Acceleo">Acceleo</a> an <a href="Open_source" title="Open source">open source</a> code generator from Obeo</li>
<li><a href="Actifsource" title="Actifsource">Actifsource</a></li>
<li>AgileUML an open source MDE toolset from AgileMDE Ltd</li>
<li>Ash Framework an open source Elixir-based declarative application framework</li>
<li><a href="ATLAS_Transformation_Language" title="ATLAS Transformation Language">ATLAS Transformation Language</a> or ATL, a model transformation language from Obeo</li>
<li><a href="DUALLy" title="DUALLy">DUALLy</a>, an MDE framework to create interoperability</li>
<li><a href="Eclipse_Modeling_Framework" title="Eclipse Modeling Framework">Eclipse Modeling Framework</a> (EMF)</li>
<li><a href="Enterprise_Architect_(software)" title="Enterprise Architect (software)">Enterprise Architect</a> from <a href="Sparx_Systems" title="Sparx Systems">Sparx Systems</a></li>
<li><a href="ETrice" title="ETrice">eTrice</a> an open source implementation of the <a href="Real-Time_Object-Oriented_Modeling" title="Real-Time Object-Oriented Modeling">Real-Time Object-Oriented Modeling</a> standard</li>
<li><a href="Generic_Eclipse_Modeling_System" title="Generic Eclipse Modeling System">Generic Eclipse Modeling System</a> (GEMS)</li>
<li><a href="GeneXus" title="GeneXus">GeneXus</a> a <a href="Knowledge_representation" class="mw-redirect" title="Knowledge representation">knowledge</a>-based, <a href="Declarative_language" class="mw-redirect" title="Declarative language">declarative</a>, multi-platform, multi-language development solution</li>
<li><a href="Graphical_Modeling_Framework" title="Graphical Modeling Framework">Graphical Modeling Framework</a> (GMF)</li>
<li><a href="JetBrains_MPS" title="JetBrains MPS">JetBrains MPS</a>, a <a href="Metaprogramming" title="Metaprogramming">metaprogramming</a> system from <a href="JetBrains" title="JetBrains">JetBrains</a></li>
<li><a href="MagicDraw" title="MagicDraw">MagicDraw</a> from No Magic Inc</li>
<li>MDriven – a UML-based, model-driven development platform that generates .NET and web applications from executable models.</li>
<li><a href="MERODE" title="MERODE">MERODE</a> JMermaid from KU Leuven (educational)</li>
<li><a href="MetaEdit%2B" title="MetaEdit+">MetaEdit+</a> from MetaCase</li>
<li><a href="ModelCenter" title="ModelCenter">ModelCenter</a> from Phoenix Integration</li>
<li><a href="Open_ModelSphere" title="Open ModelSphere">Open ModelSphere</a></li>
<li><a href="OptimalJ" title="OptimalJ">OptimalJ</a> from <a href="Compuware" title="Compuware">Compuware</a></li>
<li><a href="Vector_Informatik" title="Vector Informatik">PREEvision</a> from <a href="Vector_Informatik" title="Vector Informatik">Vector Informatik</a></li>
<li><a href="Telelogic_Rhapsody" class="mw-redirect" title="Telelogic Rhapsody">Rhapsody</a> from <a href="IBM" title="IBM">IBM</a></li>
<li><a href="PowerDesigner" title="PowerDesigner">PowerDesigner</a> from <a href="SAP_SE" class="mw-redirect" title="SAP SE">SAP</a></li>
<li><a href="Simulink" title="Simulink">Simulink</a> from <a href="MathWorks" title="MathWorks">MathWorks</a></li>
<li><a href="Software_Ideas_Modeler" title="Software Ideas Modeler">Software Ideas Modeler</a> from Dusan Rodina</li>
<li><a href="Eclipse_Sirius" title="Eclipse Sirius">Sirius</a> an Eclipse open source project to create custom graphical modeling workbenches</li>
<li><a href="Borland_Together" class="mw-redirect" title="Borland Together">Together Architect</a> from <a href="Borland" title="Borland">Borland</a></li>
<li><a href="Umbrello" class="mw-redirect" title="Umbrello">Umbrello</a> by KDE</li>
<li><a href="Umple" title="Umple">Umple</a> from the University of Ottawa</li>
<li><a href="Uniface_(programming_language)" title="Uniface (programming language)">Uniface</a> from Compuware</li>
<li><a href="YAKINDU_Statechart_Tools" title="YAKINDU Statechart Tools">YAKINDU Statechart Tools</a> open source tool build on top of <a href="Eclipse_(software)" title="Eclipse (software)">Eclipse</a></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Application_lifecycle_management" title="Application lifecycle management">Application lifecycle management</a> (ALM)</li>
<li><a href="Business_Process_Model_and_Notation" title="Business Process Model and Notation">Business Process Model and Notation</a> (BPMN)</li>
<li><a href="Business-driven_development" title="Business-driven development">Business-driven development</a> (BDD)</li>
<li><a href="Domain-driven_design" title="Domain-driven design">Domain-driven design</a> (DDD)</li>
<li><a href="Domain-specific_language" title="Domain-specific language">Domain-specific language</a> (DSL)</li>
<li><a href="Domain-specific_modeling" title="Domain-specific modeling">Domain-specific modeling</a> (DSM)</li>
<li><a href="Domain-specific_multimodeling" title="Domain-specific multimodeling">Domain-specific multimodeling</a></li>
<li><a href="Language-oriented_programming" title="Language-oriented programming">Language-oriented programming</a> (LOP)</li>
<li><a href="List_of_Unified_Modeling_Language_tools" title="List of Unified Modeling Language tools">List of Unified Modeling Language tools</a></li>
<li><a href="Model_transformation" title="Model transformation">Model transformation</a> (e.g. using <a href="QVT" title="QVT">QVT</a>)</li>
<li><a href="Model-based_testing" title="Model-based testing">Model-based testing</a> (MBT)</li>
<li><a href="Modeling_Maturity_Level" class="mw-redirect" title="Modeling Maturity Level">Modeling Maturity Level</a> (MML)</li>
<li><a href="Model-based_systems_engineering" title="Model-based systems engineering">Model-based systems engineering</a> (MBSE)</li>
<li><a href="Service-oriented_modeling" title="Service-oriented modeling">Service-oriented modeling</a> Framework (SOMF)</li>
<li><a href="Software_factory" title="Software factory">Software factory</a> (SF)</li>
<li><a href="Story-driven_modeling" title="Story-driven modeling">Story-driven modeling</a> (SDM)</li>
<li><a href="Open_API" title="Open API">Open API</a>, open source specification for description of models and operations for HTTP interoperation and REST APIc</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.infoq.com/articles/8-reasons-why-MDE-fails/">"8 Reasons Why Model-Driven Approaches (will) Fail"</a>. <i>InfoQ</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-07-26</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFFlattLangnerLeps2022" class="citation book cs1">Flatt, Amelie; Langner, Arne; Leps, Olof (2022). <i>Model-Driven Development of Akoma Ntoso Application Profiles - A Conceptual Framework for Model-Based Generation of XML Subschemas</i> (1st&nbsp;ed.). Heidelberg: Sprinter Nature. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-3-031-14131-7</bdi>.</cite></span>
</li>
<li id="cite_note-omgtm-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-omgtm_3-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFObject_Management_Group2006" class="citation web cs1"><a href="Object_Management_Group" title="Object Management Group">Object Management Group</a> (2006-05-24). <a rel="nofollow" class="external text" href="https://www.omg.org/legal/tm_list.htm">"OMG Trademarks"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2008-02-26</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFSchmidt2006" class="citation journal cs1">Schmidt, D.C. (February 2006). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20060909034327/http://www.cs.wustl.edu/%7Eschmidt/PDF/GEI.pdf">"Model-Driven Engineering"</a> <span class="cs1-format">(PDF)</span>. <i><a href="IEEE_Computer" class="mw-redirect" title="IEEE Computer">IEEE Computer</a></i>. <b>39</b> (2). <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMC.2006.58">10.1109/MC.2006.58</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:10006139">10006139</a>. Archived from <a rel="nofollow" class="external text" href="https://www.cs.wustl.edu/~schmidt/PDF/GEI.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2006-09-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2006-05-16</span></span>.</cite>, <i>"A promising approach to address platform complexity—and the inability of third-generation languages to alleviate this complexity and express domain concepts effectively—is to develop Model-Driven Engineering (MDE) technologies..."</i></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><a href="David_S._Frankel" title="David S. Frankel">David S. Frankel</a>, <i>Model Driven Architecture: Applying MDA to Enterprise Computing</i>, John Wiley &amp; Sons, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-471-31920-1</bdi></li>
<li>Marco Brambilla, Jordi Cabot, Manuel Wimmer, <i>Model Driven Software Engineering in Practice</i>, foreword by <a href="Richard_Soley" title="Richard Soley">Richard Soley</a> (<a href="Object_Management_Group" title="Object Management Group">OMG</a> Chairman), Morgan &amp; Claypool, USA, 2012, Synthesis Lectures on Software Engineering #1. 182 pages. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9781608458820</bdi> (paperback), <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9781608458837</bdi> (ebook). <a rel="nofollow" class="external free" href="https://www.mdse-book.com">https://www.mdse-book.com</a></li>
<li><cite id="CITEREFda_Silva2015" class="citation journal cs1">da Silva, Alberto Rodrigues (2015). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.cl.2015.06.001">"Model-Driven Engineering: A Survey Supported by a Unified Conceptual Model"</a>. <i>Computer Languages, Systems &amp; Structures</i>. <b>43</b> (43): <span class="nowrap">139–</span>155. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.cl.2015.06.001">10.1016/j.cl.2015.06.001</a></span>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.omg.org/mda/mda_files/Model-Driven_Architecture.pdf"><i>Model-Driven Architecture: Vision, Standards And Emerging Technologies</i></a> at omg.org</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Software_engineering336" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Software_engineering336" style="font-size:114%;margin:0 4em"><a href="Software_engineering" title="Software engineering">Software engineering</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Fields</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_programming" title="Computer programming">Computer programming</a></li>
<li><a href="DevOps" title="DevOps">DevOps</a></li>
<li><a href="Empirical_software_engineering" title="Empirical software engineering">Empirical software engineering</a></li>
<li><a href="Experimental_software_engineering" title="Experimental software engineering">Experimental software engineering</a></li>
<li><a href="Formal_methods" title="Formal methods">Formal methods</a></li>
<li><a href="Requirements_engineering" title="Requirements engineering">Requirements engineering</a></li>
<li><a href="Search-based_software_engineering" title="Search-based software engineering">Search-based software engineering</a></li>
<li><a href="Site_reliability_engineering" title="Site reliability engineering">Site reliability engineering</a></li>
<li><a href="Social_software_engineering" title="Social software engineering">Social software engineering</a></li>
<li><a href="Software_deployment" title="Software deployment">Software deployment</a></li>
<li><a href="Software_design" title="Software design">Software design</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Software maintenance</a></li>
<li><a href="Software_testing" title="Software testing">Software testing</a></li>
<li><a href="Systems_analysis" title="Systems analysis">Systems analysis</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Abstraction_(computer_science)" title="Abstraction (computer science)">Abstraction</a></li>
<li><a href="CI/CD" title="CI/CD">CI/CD</a></li>
<li><a href="Computer_compatibility" title="Computer compatibility">Compatibility</a>
<ul><li><a href="Backward_compatibility" title="Backward compatibility">Backward compatibility</a></li>
<li><a href="Compatibility_layer" title="Compatibility layer">Compatibility layer</a></li>
<li><a href="Compatibility_mode" title="Compatibility mode">Compatibility mode</a></li>
<li><a href="Forward_compatibility" title="Forward compatibility">Forward compatibility</a></li>
<li><a href="Software_incompatibility" title="Software incompatibility">Software incompatibility</a></li></ul></li>
<li><a href="Component-based_software_engineering" title="Component-based software engineering">Component-based software engineering</a></li>
<li><a href="Data_modeling" title="Data modeling">Data modeling</a></li>
<li><a href="Enterprise_architecture" title="Enterprise architecture">Enterprise architecture</a></li>
<li><a href="Functional_specification" title="Functional specification">Functional specification</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling language</a></li>
<li><a href="Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li>
<li><a href="Software" title="Software">Software</a></li>
<li><a href="Software_archaeology" title="Software archaeology">Software archaeology</a></li>
<li><a href="Software_architecture" title="Software architecture">Software architecture</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">Software configuration management</a></li>
<li><a href="Software_development_process" title="Software development process">Software development process/methodology</a></li>
<li><a href="Software_quality" title="Software quality">Software quality</a></li>
<li><a href="Software_quality_assurance" title="Software quality assurance">Software quality assurance</a></li>
<li><a href="Software_system" title="Software system">Software system</a></li>
<li><a href="Software_verification_and_validation" title="Software verification and validation">Software verification and validation</a></li>
<li><a href="Structured_analysis" title="Structured analysis">Structured analysis</a>
<ul><li><a href="Essential_systems_analysis" title="Essential systems analysis">Essential analysis</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Orientations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Agile_software_development" title="Agile software development">Agile</a></li>
<li><a href="Aspect-oriented_programming" title="Aspect-oriented programming">Aspect-oriented</a></li>
<li><a href="Object-oriented_programming" title="Object-oriented programming">Object orientation</a></li>
<li><a href="Ontology_(information_science)" title="Ontology (information science)">Ontology</a></li>
<li><a href="Systems_development_life_cycle" title="Systems development life cycle">SDLC</a></li>
<li><a href="Service-oriented_architecture" title="Service-oriented architecture">Service orientation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Models</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Developmental</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Agile_software_development" title="Agile software development">Agile</a></li>
<li><a href="Enterprise_unified_process" title="Enterprise unified process">EUP</a></li>
<li><a href="Executable_UML" title="Executable UML">Executable UML</a></li>
<li><a href="Incremental_build_model" title="Incremental build model">Incremental model</a></li>
<li><a href="Iterative_and_incremental_development" title="Iterative and incremental development">Iterative model</a></li>
<li><a href="Software_prototyping" title="Software prototyping">Prototype model</a></li>
<li><a href="Rapid_application_development" title="Rapid application development">RAD</a></li>
<li><a href="Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li>
<li><a href="Spiral_model" title="Spiral model">Spiral model</a></li>
<li><a href="Unified_process" title="Unified process">UP</a></li>
<li><a href="V-model_(software_development)" title="V-model (software development)">V-model</a></li>
<li><a href="Waterfall_model" title="Waterfall model">Waterfall model</a></li>
<li><a href="Extreme_programming" title="Extreme programming">XP</a></li>

<li><a href="Round-trip_engineering" title="Round-trip engineering">Round-trip engineering</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li>
<li><a href="Data_model" title="Data model">Data model</a></li>
<li><a href="Entity%E2%80%93relationship_model" title="Entity–relationship model">ER model</a></li>
<li><a href="Function_model" title="Function model">Function model</a></li>
<li><a href="Information_model" title="Information model">Information model</a></li>
<li><a href="Metamodeling" title="Metamodeling">Metamodeling</a></li>
<li><a href="Object_model" title="Object model">Object model</a></li>
<li><a href="ISO/IEC_15504" title="ISO/IEC 15504">SPICE</a></li>
<li><a href="Systems_modeling" title="Systems modeling">Systems model</a></li>
<li><a href="View_model" title="View model">View model</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IDEF" title="IDEF">IDEF</a></li>
<li><a href="Systems_modeling_language" title="Systems modeling language">SysML</a></li>
<li><a href="Unified_Modeling_Language" title="Unified Modeling Language">UML</a></li>
<li><a href="Universal_Systems_Language" title="Universal Systems Language">USL</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Systems_design" title="Systems design">Systems design</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Software_requirements_specification" title="Software requirements specification"> Requirements</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Functional_requirement" title="Functional requirement">Functional requirement</a></li>
<li><a href="Non-functional_requirement" title="Non-functional requirement">Non-functional requirement</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Capacity_planning" title="Capacity planning"> Capacity</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Active_users" title="Active users"> Users</a></li>
<li><a href="Central_processing_units" class="mw-redirect" title="Central processing units"> Compute</a></li>
<li><a href="Computer_memory" title="Computer memory"> Memory</a></li>
<li><a href="Computer_data_storage" title="Computer data storage"> Storage</a></li>
<li><a href="Bandwidth_(computing)" title="Bandwidth (computing)"> Network</a></li>
<li><a href="Web_traffic" title="Web traffic">Web traffic</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Interface_(computing)" title="Interface (computing)"> Interface</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="API" title="API">API</a></li>
<li><a href="SOAP" title="SOAP">SOAP</a></li>
<li><a href="REST" title="REST">REST</a></li>
<li><a href="GraphQL" title="GraphQL">GraphQL</a></li>
<li><a href="GRPC" title="GRPC">gRPC</a></li>
<li><a href="Webhook" title="Webhook">Webhook</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="High-level_design" title="High-level design">High-level design</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Client_(computing)" title="Client (computing)"> Client</a></li>
<li><a href="Load_balancing_(computing)" title="Load balancing (computing)"> Load balancing</a></li>
<li><a href="Application_server" title="Application server">Application server</a></li>
<li><a href="Message_queue" title="Message queue">Message queue</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="System_Integration" class="mw-redirect" title="System Integration"> Integration</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Vertical_integration" title="Vertical integration"> Vertical</a></li>
<li><a href="Peer-to-peer" title="Peer-to-peer">Peer-to-peer</a></li>
<li><a href="API_management" title="API management"> API Gateway</a></li>
<li><a href="Publish%E2%80%93subscribe_pattern" title="Publish–subscribe pattern"> pub-sub</a></li>
<li><a href="Event_store" title="Event store"> Event Source</a></li>
<li><a href="Extract%2C_transform%2C_load" title="Extract, transform, load"> ETL</a></li>
<li><a href="Batch_processing" title="Batch processing"> Batch</a></li>
<li><a href="Stream_processing" title="Stream processing">Stream</a></li>
<li><a href="Orchestration_(computing)" title="Orchestration (computing)"> Orchestration</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Architectures" class="mw-redirect" title="Architectures">Architectures</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Monolithic_application" title="Monolithic application"> Monolithic</a></li>
<li><a href="Microservices" title="Microservices">Microservices</a></li>
<li><a href="Event-driven_architecture" title="Event-driven architecture"> Event-Driven</a></li>
<li><a href="Client%E2%80%93server_model" title="Client–server model"> Client–server</a></li>
<li><a href="Serverless_computing" title="Serverless computing"> Serverless</a></li>
<li><a href="Circuit_breaker_design_pattern" title="Circuit breaker design pattern"> Circuit breaker</a></li>
<li><a href="Rate_limiting" title="Rate limiting">Rate limiting</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Database" title="Database">Database</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Relational_database" title="Relational database"> Relational</a></li>
<li><a href="NoSQL" title="NoSQL">NoSQL</a></li>
<li><a href="Graph_database" title="Graph database"> Graph</a></li>
<li><a href="Key%E2%80%93value_database" title="Key–value database"> Key–value</a></li>
<li><a href="Log-structured_merge-tree" title="Log-structured merge-tree"> LSM Tree </a></li>
<li><a href="Time_series_database" title="Time series database"> Time series</a></li>
<li><a href="Data_orientation" title="Data orientation"> Column Oriented</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Systems_design" title="Systems design"> Principles</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Consistency_(database_systems)" title="Consistency (database systems)">Consistency</a></li>
<li><a href="Reliability_engineering" title="Reliability engineering">Reliability</a></li>
<li><a href="CAP_theorem" title="CAP theorem">CAP theorem</a></li>
<li><a href="Software_maintenance" title="Software maintenance"> Maintainability</a></li>
<li><a href="Computer_configuration" title="Computer configuration"> Configurability</a></li>
<li><a href="Modularity" title="Modularity">Modularity</a></li>
<li><a href="Durability_(database_systems)" title="Durability (database systems)"> Durability</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Scalability" title="Scalability">Scalability</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Service_statelessness_principle" title="Service statelessness principle"> Stateless</a></li>
<li><a href="Asynchronous_I/O" title="Asynchronous I/O">Asynchronous I/O</a></li>
<li><a href="Loose_coupling" title="Loose coupling">Loose coupling</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Availability" title="Availability">Availability</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fault_tolerance" title="Fault tolerance">Fault tolerance</a></li>
<li><a href="Failover" title="Failover">Failover</a></li>
<li><a href="Single_point_of_failure" title="Single point of failure">Single point of failure</a></li>
<li><a href="Replication_(computing)" title="Replication (computing)"> Replication</a></li>
<li><a href="Consistent_hashing" title="Consistent hashing">Consistent hashing</a></li>
<li><a href="Circuit_breaker_design_pattern" title="Circuit breaker design pattern"> Circuit breaker</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Latency_(engineering)" title="Latency (engineering)">Latency</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cache_(computing)" title="Cache (computing)"> Cache</a></li>
<li><a href="Content_delivery_network" title="Content delivery network"> CDN</a></li>
<li><a href="Shard_(database_architecture)" title="Shard (database architecture)"> Shard </a></li>
<li><a href="Database_index" title="Database index">Database index</a></li>
<li><a href="Cache_prefetching" title="Cache prefetching"> Pre-caching</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Computer_data_storage" title="Computer data storage"> Storage</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Object_storage" title="Object storage">Object storage</a></li>
<li><a href="Block-level_storage" title="Block-level storage"> Block storage</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;"><a href="Observability_(software)" title="Observability (software)"> Observability</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Logging_(computing)" title="Logging (computing)"> Logging</a></li>
<li><a href="Software_metric" title="Software metric"> Metrics</a></li>
<li><a href="Tracing_(software)" title="Tracing (software)"> Tracing </a></li>
<li><a href="Failure_rate" title="Failure rate"> Error rate </a></li>
<li><a href="Queries_per_second" title="Queries per second">Queries per second </a></li>
<li><a href="Notification_system" title="Notification system">Notification system</a></li>
<li><a href="Anomaly_detection" title="Anomaly detection">Anomaly detection</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related fields</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_engineering" title="Computer engineering">Computer engineering</a></li>
<li><a href="Computer_science" title="Computer science">Computer science</a></li>
<li><a href="Information_science" title="Information science">Information science</a></li>
<li><a href="Project_management" title="Project management">Project management</a></li>
<li><a href="Risk_management" title="Risk management">Risk management</a></li>
<li><a href="Systems_engineering" title="Systems engineering">Systems engineering</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold;"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Software_engineering" class="extiw external" title="commons:Category:Software engineering">Commons</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-18" href="https://en.wikipedia.org/wiki/?title=Model-driven_engineering&amp;oldid=1301230486">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>